import {
	getToken,
	removeToken
} from '@/utils/storage.js';
import env from '@/utils/env.js';

function service(options = {}) {
	options.url = `${env.baseUrl}${options.url}`;
	// 判断本地是否存在token，如果存在则带上请求头
	if (getToken()) {
		options.header = {
			'content-type': 'application/json',
			'Authorization': `${getToken()}` // 这里是token(可自行修改)
		};
	}

	return new Promise((resolved, rejected) => {
		options.success = (res) => {
			// 如果请求回来的状态码不是200则执行以下操作
			if (res.data.code !== 200) {
				// 登陆失效
				if (res.data.code === 401) {
					// 清除本地token
					removeToken()
					// 关闭所有页面返回到登录页
					uni.reLaunch({
						url: '/pages/login/login'
					})
				} else {
					// uni.showToast({
					// 	icon: 'none',
					// 	title: res.data.message
					// })
				}
				// 返回错误信息
				rejected(res)
			} else {
				// 请求回来的状态码为200则返回内容
				resolved(res.data.data)
			}
		};
		options.fail = (err) => {
			// 请求失败
			rejected(err);
		};
		uni.request(options);
	});
}
// GET请求
const get = (url, data = {}, options = {}) => {
	options.url = url
	options.method = 'GET'
	options.data = data
	return service(options)
}
// POST请求
const post = (url, data = {}, options = {}) => {
	options.url = url
	options.method = 'POST'
	options.data = data
	return service(options)
}
export default {
	get,
	post
}